/**
 * <pre>
 * Title: 		Adminable.java
 * Author:		linriqing
 * Create:	 	2010-6-7 下午01:53:32
 * Copyright: 	Copyright (c) 2010
 * Company:		Shenzhen Helper
 * <pre>
 */
package com.hengpeng.common.web.annotation;

import static com.hengpeng.common.web.annotation.HtmlInputPattern.NORMAL;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * <pre>
 * 受管理的对象
 * </pre>
 * @author linriqing
 * @version 1.0, 2010-6-7
 */
@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface HtmlInput
{
	/**
	 * @return css样式类名
	 */
	public String cssClass() default "";

	/**
	 * @return 如果属性定义为集合，需要给出集合元素的类型
	 */
	public Class<?> elementType() default Object.class;

	/**
	 * @return 输出格式
	 */
	public String format() default "";

	/**
	 * @return 控件显示的顺序
	 */
	public int index() default Integer.MAX_VALUE;

	/**
	 * @return 控件ID
	 */
	public String inputId() default "";

	/**
	 * @return 集合，Map，数组对象名称
	 */
	public String items() default "";

	/**
	 * @return 显示名称
	 */
	public String label() default "";

	/**
	 * @return 属性为对象时，取显示名称的字段名
	 */
	public String labelProperty() default "";

	/**
	 * @return 字段最大长度校验
	 */
	public int maxLength() default Integer.MAX_VALUE;

	/**
	 * @return 字段最小长度校验
	 */
	public int minLength() default 0;

	/**
	 * @return 字段是否允许空值
	 */
	public boolean nullable() default true;

	/**
	 * @return 字段校验格式
	 */
	public HtmlInputPattern pattern() default NORMAL;

	/**
	 * @return css样式
	 */
	public String style() default "";

	/**
	 * @return 字段控件输入提示
	 */
	public String tips() default "";

	/**
	 * @return 控件类型
	 */
	public HtmlInputType type();

	/**
	 * @return 属性为对象时，取值的字段名
	 */
	public String valueProperty() default "";
}
